home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993 April: Penguin on DISC / ADC Developer CD (1993-04) (''Penguin On DISC'')_iso / Dev.CD Apr 93.iso / Utilities / MPW Interfaces 7.1 Beta / CIncludes / Events.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-28  |  3.8 KB  |  186 lines  |  [TEXT/MPS ]

  1.  
  2. /************************************************************
  3.  
  4. Created: Saturday, July 27, 1991 at 3:22 PM
  5.  Events.h
  6.  C Interface to the Macintosh Libraries
  7.  
  8.  
  9.   Copyright Apple Computer, Inc. 1985-1991
  10.   All rights reserved
  11.  
  12. *** Warning: This is an alpha version of the Interfaces for Cube-E. 
  13. ***          Things may change.  Caveat Programmer.
  14.  
  15.  
  16. */
  17.  
  18.  
  19. #ifndef __EVENTS__
  20. #define __EVENTS__
  21.  
  22. #ifndef __TYPES__
  23. #include <Types.h>
  24. #endif
  25.  
  26. #ifndef __QUICKDRAW__
  27. #include <Quickdraw.h>
  28. #endif
  29.  
  30. #ifndef __OSUTILS__
  31. #include <OSUtils.h>
  32. #endif
  33.  
  34.  
  35. enum {
  36.  
  37.  nullEvent = 0,
  38.  mouseDown = 1,
  39.  mouseUp = 2,
  40.  keyDown = 3,
  41.  keyUp = 4,
  42.  autoKey = 5,
  43.  updateEvt = 6,
  44.  diskEvt = 7,
  45.  activateEvt = 8,
  46.  osEvt = 15,
  47.  
  48. /* event mask equates */
  49.  mDownMask = 2,
  50.  mUpMask = 4,
  51.  keyDownMask = 8,
  52.  keyUpMask = 16,
  53.  autoKeyMask = 32,
  54.  updateMask = 64,
  55.  diskMask = 128,
  56.  activMask = 256,
  57.  highLevelEventMask = 1024,
  58.  osMask = -32768
  59. };
  60. enum {
  61.  everyEvent = -1,
  62.  
  63. /* event message equates */
  64.  charCodeMask = 0x000000FF,
  65.  keyCodeMask = 0x0000FF00,
  66.  adbAddrMask = 0x00FF0000,
  67.  osEvtMessageMask = 0xFF000000,
  68.  
  69. /* OS event messages.  Event (sub)code is in the high byte of the message field. */
  70.  mouseMovedMessage = 0xFA,
  71.  suspendResumeMessage = 0x01,
  72.  
  73.  resumeFlag = 1,            /* Bit 0 of message indicates resume vs suspend */
  74.  convertClipboardFlag = 2,    /* Bit 1 in resume message indicates clipboard change */
  75.  
  76. /* modifiers */
  77.  activeFlag = 1,            /* Bit 0 of modifiers for activateEvt and mouseDown events */
  78.  btnState = 128,            /* Bit 7 of low byte is mouse button state */
  79.  cmdKey = 256,                /* Bit 0 */
  80.  shiftKey = 512,            /* Bit 1 */
  81.  alphaLock = 1024,            /* Bit 2 */
  82.  optionKey = 2048,            /* Bit 3 of high byte */
  83.  controlKey = 4096,
  84.  
  85. /* obsolete equates */
  86.  networkEvt = 10,
  87.  driverEvt = 11,
  88.  app1Evt = 12,
  89.  app2Evt = 13
  90. };
  91. enum {
  92.  app3Evt = 14,
  93.  app4Evt = 15,
  94.  networkMask = 1024,
  95.  driverMask = 2048,
  96.  app1Mask = 4096,
  97.  app2Mask = 8192,
  98.  app3Mask = 16384,
  99.  app4Mask = -32768
  100. };
  101.  
  102. struct EventRecord {
  103.  short what;
  104.  long message;
  105.  long when;
  106.  Point where;
  107.  short modifiers;
  108. };
  109.  
  110. typedef struct EventRecord EventRecord;
  111.  
  112.  
  113. typedef long KeyMap[4];
  114.  
  115.  
  116. struct EvQEl {
  117.  QElemPtr qLink;
  118.  short qType;
  119.  short evtQWhat;    /*this part is identical to the EventRecord as...*/
  120.  long evtQMessage;    /*defined in ToolIntf*/
  121.  long evtQWhen;
  122.  Point evtQWhere;
  123.  short evtQModifiers;
  124. };
  125.  
  126. typedef struct EvQEl EvQEl;
  127. typedef EvQEl *EvQElPtr;
  128.  
  129.  
  130.  
  131. #ifdef __cplusplus
  132. extern "C" {
  133. #endif
  134. pascal Boolean GetNextEvent(short eventMask,EventRecord *theEvent)
  135.  = 0xA970; 
  136. pascal Boolean WaitNextEvent(short eventMask,EventRecord *theEvent,unsigned long sleep,
  137.  RgnHandle mouseRgn)
  138.  = 0xA860; 
  139. pascal Boolean EventAvail(short eventMask,EventRecord *theEvent)
  140.  = 0xA971; 
  141. pascal void GetMouse(Point *mouseLoc)
  142.  = 0xA972; 
  143. pascal Boolean Button(void)
  144.  = 0xA974; 
  145. pascal Boolean StillDown(void)
  146.  = 0xA973; 
  147. pascal Boolean WaitMouseUp(void)
  148.  = 0xA977; 
  149. pascal void GetKeys(KeyMap theKeys)
  150.  = 0xA976; 
  151. pascal unsigned long TickCount(void)
  152.  = 0xA975; 
  153. #define GetDblTime() (* (unsigned long*) 0x02F0)
  154. #define GetCaretTime() (* (unsigned long*) 0x02F4)
  155. #ifdef __cplusplus
  156. }
  157. #endif
  158.  
  159.  
  160. #ifdef __cplusplus
  161. extern "C" {
  162. #endif
  163. #pragma parameter __D0 PostEvent(__A0,__D0)
  164. pascal OSErr PostEvent(short eventNum,long eventMsg)
  165.  = 0xA02F; 
  166. #pragma parameter __D0 PPostEvent(__A0,__D0,__A1)
  167. pascal OSErr PPostEvent(short eventCode,long eventMsg,EvQElPtr *qEl)
  168.  = {0xA12F,0x2288}; 
  169. #pragma parameter __D0 OSEventAvail(__D0,__A0)
  170. pascal Boolean OSEventAvail(short mask,EventRecord *theEvent)
  171.  = {0xA030,0x5240}; 
  172. #pragma parameter __D0 GetOSEvent(__D0,__A0)
  173. pascal Boolean GetOSEvent(short mask,EventRecord *theEvent)
  174.  = {0xA031,0x5240}; 
  175. pascal void FlushEvents(short whichMask,short stopMask)
  176.  = {0x201F,0xA032}; 
  177. #pragma parameter SetEventMask(__D0)
  178. pascal void SetEventMask(short theMask)
  179.  = {0x31C0,0x0144}; 
  180. #define GetEvQHdr() ((QHdrPtr) 0x014A)
  181. #ifdef __cplusplus
  182. }
  183. #endif
  184.  
  185. #endif
  186.